Within information technology systems, a situation can occur in data centers where a disproportionate number of physical machines such as servers are running at very low rates of usage. This situation wastes the data center's resources such as, for example, power, cooling and space, as well as the internal resources of each server such as CPU cycles, memory, and storage. This situation is called server sprawl. Various techniques exist to mitigate server sprawl; most notably computer virtualization. A virtual machine (VM) is a software implementation of a computing device that executes programs like a physical machine.
One characteristic of a VM is that the software running inside is limited to the resources and abstractions provided by the VM, and the VM cannot break out of its virtual environment. In a virtualized data center, new virtual computer systems are often created from an existing gold standard virtual computer system called an image or VM template by an operation known as “clone,” “deploy,” or “instantiate.” The source VM is a combination of operating system, applications, and the entire associated configuration. However, in some situations and for various reasons, it is necessary to customize the configuration of a newly created VM on a per-VM-deployment basis.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.